#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
typedef int Qdatatype;
typedef struct queuenode
{
	Qdatatype val;
	struct queuenode* next;
}qnode,*pqnode;
typedef struct queue
{
	pqnode head;
	pqnode tail;
	int size;
}queue;
void queueinit(queue* pq);
void queuedestroy(queue* pq);
void queuepush(queue* pq,Qdatatype x);
void queuepop(queue* pq);
Qdatatype queuefront(queue* pq);
Qdatatype queueback(queue* pq);
int queuesize(queue* pq);
bool queueempty(queue* pq);

